home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / ssyr.z / ssyr
Encoding:
Text File  |  2002-10-03  |  16.6 KB  |  331 lines

  1.  
  2.  
  3.  
  4. SSSSSSSSYYYYRRRR((((3333SSSS))))                                                              SSSSSSSSYYYYRRRR((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SSSSSSSSYYYYRRRR, DDDDSSSSYYYYRRRR, CCCCSSSSYYYYRRRR, ZZZZSSSSYYYYRRRR - Performs symmetric rank 1 update of a real or
  10.      complex symmetric matrix
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      Single precision
  14.  
  15.           Fortran:
  16.                CCCCAAAALLLLLLLL SSSSSSSSYYYYRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a,,,, _l_d_a))))
  17.  
  18.           C/C++:
  19.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  20.                vvvvooooiiiidddd ssssssssyyyyrrrr ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ffffllllooooaaaatttt _a_l_p_h_a,,,, ffffllllooooaaaatttt *_x,,,, iiiinnnntttt _i_n_c_x,,,,
  21.                ffffllllooooaaaatttt *_a,,,, iiiinnnntttt _l_d_a))));;;;
  22.  
  23.      Double precision
  24.  
  25.           Fortran:
  26.                CCCCAAAALLLLLLLL DDDDSSSSYYYYRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a,,,, _l_d_a))))
  27.  
  28.           C/C++:
  29.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  30.                vvvvooooiiiidddd ddddssssyyyyrrrr ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ddddoooouuuubbbblllleeee _a_l_p_h_a,,,, ddddoooouuuubbbblllleeee *_x,,,, iiiinnnntttt
  31.                _i_n_c_x,,,, ddddoooouuuubbbblllleeee *_a,,,, iiiinnnntttt _l_d_a))));;;;
  32.  
  33.      Single precision complex
  34.  
  35.           Fortran:
  36.                CCCCAAAALLLLLLLL CCCCSSSSYYYYRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a,,,, _l_d_a))))
  37.  
  38.           C/C++:
  39.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  40.                vvvvooooiiiidddd ccccssssyyyyrrrr ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  41.                *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____ccccoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a))));;;;
  42.  
  43.           C++ STL:
  44.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  45.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  46.                vvvvooooiiiidddd ccccssssyyyyrrrr ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a_l_p_h_a,,,,
  47.                ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>> *_a,,,, iiiinnnntttt _l_d_a))));;;;
  48.  
  49.      Double precision complex
  50.  
  51.           Fortran:
  52.                CCCCAAAALLLLLLLL ZZZZSSSSYYYYRRRR ((((_u_p_l_o,,,, _n,,,, _a_l_p_h_a,,,, _x,,,, _i_n_c_x,,,, _a,,,, _l_d_a))))
  53.  
  54.           C/C++:
  55.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  56.                vvvvooooiiiidddd zzzzssssyyyyrrrr ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a_l_p_h_a,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  57.                *_x,,,, iiiinnnntttt _i_n_c_x,,,, ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx *_a,,,, iiiinnnntttt _l_d_a))));;;;
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSSSSSYYYYRRRR((((3333SSSS))))                                                              SSSSSSSSYYYYRRRR((((3333SSSS))))
  71.  
  72.  
  73.  
  74.           C++ STL:
  75.                ####iiiinnnncccclllluuuuddddeeee <<<<ccccoooommmmpppplllleeeexxxx....hhhh>>>>
  76.                ####iiiinnnncccclllluuuuddddeeee <<<<ssssccccssssllll____bbbbllllaaaassss....hhhh>>>>
  77.                vvvvooooiiiidddd zzzzssssyyyyrrrr ((((cccchhhhaaaarrrr *_u_p_l_o,,,, iiiinnnntttt _n,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a_l_p_h_a,,,,
  78.                ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_x,,,, iiiinnnntttt _i_n_c_x,,,, ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>> *_a,,,, iiiinnnntttt _l_d_a))));;;;
  79.  
  80. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  81.      These routines are part of the SCSL Scientific Library and can be loaded
  82.      using either the ----llllssssccccssss or the ----llllssssccccssss____mmmmpppp option.  The ----llllssssccccssss____mmmmpppp option
  83.      directs the linker to use the multi-processor version of the library.
  84.  
  85.      When linking to SCSL with ----llllssssccccssss or ----llllssssccccssss____mmmmpppp, the default integer size is
  86.      4 bytes (32 bits). Another version of SCSL is available in which integers
  87.      are 8 bytes (64 bits).  This version allows the user access to larger
  88.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  89.      by using the ----llllssssccccssss____iiii8888 option or the ----llllssssccccssss____iiii8888____mmmmpppp option. A program may use
  90.      only one of the two versions; 4-byte integer and 8-byte integer library
  91.      calls cannot be mixed.
  92.  
  93.      The C and C++ prototypes shown above are appropriate for the 4-byte
  94.      integer version of SCSL. When using the 8-byte integer version, the
  95.      variables of type iiiinnnntttt become lllloooonnnngggg lllloooonnnngggg and the <<<<ssssccccssssllll____bbbbllllaaaassss____iiii8888....hhhh>>>> header
  96.      file should be included.
  97.  
  98. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  99.      These routines perform the following symmetric rank 1 operation:
  100.  
  101.           _A <- _a_l_p_h_a _x_x_T + _A
  102.  
  103.      where _x_T is the transpose of _x, _a_l_p_h_a is a real or complex scalar, _x is
  104.      an _n-element vector, and _A is an _n-by-_n symmetric matrix.
  105.  
  106.      See the NOTES section of this man page for information about the
  107.      interpretation of the data types described in the following arguments.
  108.  
  109.      These routines have the following arguments:
  110.  
  111.      _u_p_l_o      Character.  (input)
  112.                Specifies whether the upper or lower triangular part of array _a
  113.                is referenced, as follows:
  114.  
  115.                _u_p_l_o= 'U' or 'u':  only the upper triangular part of _a is
  116.                referenced.
  117.                _u_p_l_o= 'L' or 'l':  only the lower triangular part of _a is
  118.                referenced.
  119.  
  120.                For C/C++, a pointer to this character is passed.
  121.  
  122.      _n         Integer.  (input)
  123.                Specifies the order of matrix _A.  _n >= 0.
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSSSSSYYYYRRRR((((3333SSSS))))                                                              SSSSSSSSYYYYRRRR((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      _a_l_p_h_a     Scalar alpha.  (input)
  141.                SSSSSSSSYYYYRRRR: Single precision.
  142.                DDDDSSSSYYYYRRRR: Double precision.
  143.                CCCCSSSSYYYYRRRR: Single precision complex.
  144.                ZZZZSSSSYYYYRRRR: Double precision complex.
  145.  
  146.                For C/C++, a pointer to this scalar is passed when alpha is
  147.                complex; otherwise, alpha is passed by value.
  148.  
  149.      _x         Array of dimension 1+(_n-1) * |_i_n_c_x|.  (input)
  150.                SSSSSSSSYYYYRRRR: Single precision array.
  151.                DDDDSSSSYYYYRRRR: Double precision array.
  152.                CCCCSSSSYYYYRRRR: Single precision complex array.
  153.                ZZZZSSSSYYYYRRRR: Double precision complex array.
  154.                Contains vector _x.
  155.  
  156.      _i_n_c_x      Integer.  (input)
  157.                Specifies the increment for the elements of _x.  _i_n_c_x must not
  158.                be 0.
  159.  
  160.      _a         Array of dimension (_l_d_a,_n).  (input and output)
  161.                SSSSSSSSYYYYRRRR: Single precision array.
  162.                DDDDSSSSYYYYRRRR: Double precision array.
  163.                CCCCSSSSYYYYRRRR: Single precision complex array.
  164.                ZZZZSSSSYYYYRRRR: Double precision complex array.
  165.  
  166.                Before entry with _u_p_l_o = 'U' or 'u', the leading _n-by-_n upper
  167.                triangular part of array _a must contain the upper triangular
  168.                part of the symmetric matrix.  The strictly lower triangular
  169.                part of _a is not referenced.  On exit, the upper triangular
  170.                part of the updated matrix overwrites the upper triangular part
  171.                of array _a.
  172.  
  173.                Before entry with _u_p_l_o = 'L' or 'l', the leading _n-by-_n lower
  174.                triangular part of array _a must contain the lower triangular
  175.                part of the symmetric matrix.  The strictly upper triangular
  176.                part of _a is not referenced.  On exit, the lower triangular
  177.                part of the updated matrix overwrites the lower triangular part
  178.                of array _a.
  179.  
  180.      _l_d_a       Integer.  (input)
  181.                Specifies the first dimension of _a as declared in the calling
  182.                program.  _l_d_a >= MMMMAAAAXXXX(1,_n).
  183.  
  184. NNNNOOOOTTTTEEEESSSS
  185.      SSSSSSSSYYYYRRRR/DDDDSSSSYYYYRRRR is a Level 2 Basic Linear Algebra Subprogram (Level 2 BLAS).
  186.      CCCCSSSSYYYYRRRR/ZZZZSSSSYYYYRRRR is an extension to Level 2 BLAS.
  187.  
  188.      When working backward (_i_n_c_x < 0), each routine starts at the end of the
  189.      vector and moves backward, as follows:
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSSSSSYYYYRRRR((((3333SSSS))))                                                              SSSSSSSSYYYYRRRR((((3333SSSS))))
  203.  
  204.  
  205.  
  206.           _x(1-_i_n_c_x * (_n-1)), _x(1-_i_n_c_x * (_n-2)), ..., _x(1)
  207.  
  208.  
  209.    DDDDaaaattttaaaa TTTTyyyyppppeeeessss
  210.      The following data types are described in this documentation:
  211.  
  212.           TTTTeeeerrrrmmmm UUUUsssseeeedddd                     DDDDaaaattttaaaa ttttyyyyppppeeee
  213.  
  214.      Fortran:
  215.  
  216.           Array dimensioned _n           xxxx((((nnnn))))
  217.  
  218.           Array of dimensions (_m,_n)     xxxx((((mmmm,,,,nnnn))))
  219.  
  220.           Character                     CCCCHHHHAAAARRRRAAAACCCCTTTTEEEERRRR
  221.  
  222.           Integer                       IIIINNNNTTTTEEEEGGGGEEEERRRR (IIIINNNNTTTTEEEEGGGGEEEERRRR****8888 for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  223.  
  224.           Single precision              RRRREEEEAAAALLLL
  225.  
  226.           Double precision              DDDDOOOOUUUUBBBBLLLLEEEE PPPPRRRREEEECCCCIIIISSSSIIIIOOOONNNN
  227.  
  228.           Single precision complex      CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  229.  
  230.           Double precision complex      DDDDOOOOUUUUBBBBLLLLEEEE CCCCOOOOMMMMPPPPLLLLEEEEXXXX
  231.  
  232.      C/C++:
  233.  
  234.           Array dimensioned _n           xxxx[[[[_n]]]]
  235.  
  236.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  237.  
  238.           Character                     cccchhhhaaaarrrr
  239.  
  240.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  241.  
  242.           Single precision              ffffllllooooaaaatttt
  243.  
  244.           Double precision              ddddoooouuuubbbblllleeee
  245.  
  246.           Single precision complex      ssssccccssssllll____ccccoooommmmpppplllleeeexxxx
  247.  
  248.           Double precision complex      ssssccccssssllll____zzzzoooommmmpppplllleeeexxxx
  249.  
  250.      C++ STL:
  251.  
  252.           Array dimensioned _n           xxxx[[[[_n]]]]
  253.  
  254.           Array of dimensions (_m,_n)     xxxx[[[[mmmm****nnnn]]]]
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SSSSSSSSYYYYRRRR((((3333SSSS))))                                                              SSSSSSSSYYYYRRRR((((3333SSSS))))
  269.  
  270.  
  271.  
  272.           Character                     cccchhhhaaaarrrr
  273.  
  274.           Integer                       iiiinnnntttt (lllloooonnnngggg lllloooonnnngggg for ----llllssssccccssss____iiii8888[[[[____mmmmpppp]]]])
  275.  
  276.           Single precision              ffffllllooooaaaatttt
  277.  
  278.           Double precision              ddddoooouuuubbbblllleeee
  279.  
  280.           Single precision complex      ccccoooommmmpppplllleeeexxxx<<<<ffffllllooooaaaatttt>>>>
  281.  
  282.           Double precision complex      ccccoooommmmpppplllleeeexxxx<<<<ddddoooouuuubbbblllleeee>>>>
  283.  
  284.      Note that you can explicitly declare multidimensional C/C++ arrays
  285.      provided that the array dimensions are swapped with respect to the
  286.      Fortran declaration (e.g., xxxx[[[[nnnn]]]][[[[mmmm]]]] in C/C++ versus xxxx((((mmmm,,,,nnnn)))) in Fortran).
  287.      To avoid a compiler type mismatch error in C++ (or a compiler warning
  288.      message in C), however, the array should be cast to a pointer of the
  289.      appropriate type when passed as an argument to a SCSL routine.
  290.  
  291. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  292.      IIIINNNNTTTTRRRROOOO____SSSSCCCCSSSSLLLL(3S), IIIINNNNTTTTRRRROOOO____BBBBLLLLAAAASSSS2222(3S), CCCCHHHHEEEERRRR(3S)
  293.  
  294.      IIIINNNNTTTTRRRROOOO____CCCCBBBBLLLLAAAASSSS(3S) for information about using the C interface to Fortran 77
  295.      Basic Linear Algebra Subprograms (legacy BLAS) set forth by the Basic
  296.      Linear Algebra Subprograms Technical Forum.
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                                                         PPPPaaaaggggeeee 5555
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.